package org.shj.algorithm.suanfajichu;

//汉诺塔问题： N 个盘子由大到小套在X柱上，最大的在最下面，Y，Z上没有盘子，要求把X上的盘子全部移到Z上，一次
//只能移一个，并且大盘子不能压在小盘子的上面
public class Hanoi {

	public static void main(String[] args){
		hanoi(4, "X", "Y", "Z");
	}
	
	public static void hanoi(int n, String source, String assistant, String target){
		if(n == 2){
			System.out.println((n - 1) + "-->" + assistant);
			System.out.println(n + "-->" + target);
			System.out.println((n - 1) + "-->" + target);
			
		}else{
			hanoi(n - 1, source, target, assistant);
			System.out.println(n + "-->" + target);
			hanoi(n - 1, assistant, source, target);
		}
	}
}
